{% extends "howto" %}

{% block main %}
<h2>Format des fichiers wak.ini</h2>

<p>Chaque Kit doit nécessairement inclure un fichier de meta-donnés, placé à sa racine et nommé <q>wak.ini</q>. Voici la description du format :</p>

<h3>Section [kit]</h3>
<p>La première section contient les meta-données à porté générale.</p>
<dl>
    <dt>version</dt>
    <dd>La version du kit. Est pris en compte pour la gestion des dépendances.</dd>
    <dt>desc</dt>
    <dd>Un bref descriptif, sur une ligne</dd>
    <dt>phprange (optionnel mais recommandé)</dt>
    <dd>Indiquez une fourchette de versions de PHP au sein desquelles le kit fonctionne. Par ex. 4.3-5.1,  5.*, 4.4+</dd>
    <dt>class (optionnel)</dt>
    <dd>La classe de l'instance du kit. Par defaut, <q>Webappkit</q>.</dd>
</dl>
<code>[kit]
; kit-wide meta informations
version = "0.1"
; kit version. Will be used later.
desc = "This is my first kit. It will rocks !"
; a short description. Single line to be INI compliant !
phprange = "4.3-5.*"
; define which PHP versions range compatibility (optional)
; you can use a single version string with jokers, as 4.*</code>

<h3>Librairies et dépendances</h3>
<p>Ces sections indiquent quels autres kits doivent être chargés avant celui-ci, puis quels sont les fichiers du kit à inclure, puis les sous-kits à charger ensuite. Elles sont toutes optionnelles. L'ordre dans lequel se trouvent les élements est important, ce sera l'ordre dans lequel ils seront chargés.</p>

<dl>
    <dt>[load_kits]</dt>
    <dd>La liste des kits à charger, de la forme <var>identifiant</var> = "version". L'ordre est préservé pour le chargement.</dd>
    <dt>[load_files]</dt>
    <dd>La liste des fichiers PHP à charger, de la forme <var>index</var> = "chemin/vers/le/fichier". La valeur de l'index n'est pas signifiante, seul l'ordre importe. Le chemin est un chemin relatif depuis la racine du kit.</dd>
    <dd>Il est possible de fournir un fichier pour chaque version de PHP, en les nommant <q>.php4</q>, <q>.php5</q> etc. Dans ce cas, indiquez <q>.php*</q> dans cette liste et le fichier inclus sera celui correspondant à la version courante de PHP.</dd>
    <dt>[load_classes]</dt>
    <dd>Index des classes. Sous PHP5, ces classes sront indexées pour êtrechargés automatiquement lorsqu'elles seront requises par vos scripts. Sous PHP4, elles seront chargées directement comme pour [load_files]. Le nom des classes doit impérativement être en minuscules. Il est également possible d'avoir un fichier pour chaque version de PHP ici.</dd>
    <dt>[load_subkits]</dt>
    <dd>La liste des sous-kits à charger, de la forme <var>identifiant</var> = "version". L'identifiant des kits doit omettre la partie correspondant au kit parent. Par ex. <q>hello.world</q> fera ici référence à <q>example.hello.world</q></dd>
</dl>
<code>[load_kits]
; kits to load before self resources, order will be preserved.
; absolute.kit.id = "version range"
webappkit.datapath = "1.2+"

[load_files]
; self resources to load, order will be preserved.
; n = "relative/path/to/file"
10 = "myclass.class.php*"
20 = "mychildclass.class.php*"

[load_classes]
; classes index
; class = "relative/path/to/definition/file"
; class names MUST be lower case
<var>anotherclass</var> = "lib/anotherclass.php*"

[load_subkits]
; subkits to load after self resources, order will be preserved
; relative.subkit.id = "version range"
hello.world = "*"</code>

<h3>Section [tools]</h3>
<p>Cette section liste les Outils qui seront accessibles en tant que membres de l'instance du kit. Les clefs sont les noms qu'auront le mambres et les valeurs la classe à utiliser.</p>
<code>[tools]
; name = "class"
realm = "HttpRealmTool"</code>
{% endblock %}
